﻿using System.Collections.Generic;
using System.Security.Principal;
using System;

namespace Xoohoo.Infrastructure
{
    public interface IUser : IPrincipal
    {
        bool IsAuthenticated { get; }
        IDictionary<string, object> AuthenticationValues { get; }
        string Name { get; }
        T Cast<T>() where T : class, IUser;
        bool IsInUserGroup(string userGroupName);
        bool HasPermission(Guid permissionID);
        bool HasPermission(string permissionName);
    }
}
